package com.kelong.front.dao;

import org.apache.ibatis.annotations.Mapper;
import org.springframework.data.jpa.repository.JpaRepository;
import com.kelong.front.pojo.User;
import org.springframework.data.jpa.repository.Query;

import java.util.List;

/**
 * Title: UserDao
 * Description:
 * 用户数据接口
 * Version:1.0.0
 *
 * @author pancm
 * @date 2018年1月9日
 */
@Mapper
public interface UserDao extends JpaRepository<User, Long> {

    //DAO（Data Access Object）
    //DAO：是一种设计模式，用于将数据访问逻辑与业务逻辑分离。DAO 提供了对数据库的操作接口，封装了与数据库交互的细节，使得业务逻辑代码可以专注于业务本身，而不需要关心数据是如何从数据库中获取或存储的。在 JPA 中，DAO 通常表现为接口，继承自 Spring Data JPA 提供的一些基础接口（如 JpaRepository），Spring Data JPA 会自动为这些接口生成实现类


    // 使用原生 SQL 查询年龄大于指定值的用户
    @Query(value = "SELECT * FROM t_user WHERE age > :age", nativeQuery = true)
    List<User> findUsersByAgeGreaterThan(int age);

}

